home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / internet / yam_i_dodatki / yamaminetrct / sweden / aminetrct.yam
Text File  |  1997-09-08  |  9KB  |  246 lines

  1. /* $VER: AminetRct.yam 4.0 (08 SEP 97)
  2. ** by Charles Patterson <midian@azstarnet.com>
  3. ** http://www.azstarnet.com/~midian
  4. **
  5. ** German localization by Marc Hemes <marc.hemes@braunschweig.netsurf.de
  6. ** French localization by Philippe Roux <oniria@hol.fr>
  7. **
  8. ** Description: This script finds your "Today's Aminet Upload" email in
  9. **              YAM, lists the files so you can choose which ones you want
  10. **              to download, then sends email to a US FTPMAIL site to send
  11. **              them to you.
  12. **
  13. ** Requirements: YAM 1.3.4 (© 1995-96 Marcel Beck)
  14. **               TCP/IP Stack
  15. **               rexxreqtools.library 1.3 (© 1992-94 Rafael D'Halleweyn)
  16. **
  17. ** Instructions: Send email to listproc@mail.wustl.edu with the body:
  18. **                              SUBSCRIBE aminet-daily Your Name
  19. **                           or SUBSCRIBE aminet-weekly Your Name
  20. **               Copy this file to YAM:Rexx/
  21. **               Set FILES to the number of files you want listed at a time
  22. **               Open the YAM:.config file and add this line:
  23. **                              RexxMenu1 = YAM:Rexx/AminetRct.yam
  24. **               Download your email then run this script from the YAM
  25. **                  ARexx menu.
  26. **
  27. ** --- Files listed: --- */
  28. FILES = 10
  29.  
  30. today = "Today's Aminet "
  31. weekly = "This week's Ami"
  32.  
  33. OPTIONS RESULTS
  34. ADDRESS YAM
  35.  
  36. IF ~SHOW('L','rexxreqtools.library') THEN
  37.     ADDLIB('rexxreqtools.library',0,-30,0)
  38.  
  39. NL = '0A'x
  40.  
  41. IF OPEN('localeprefs','ENV:sys/locale.prefs','R') THEN DO
  42.     language = SUBSTR(READCH('localeprefs', 113), 83, 29)
  43.     language = SUBSTR(language, 1, POS(D2C(0), language) - 1)
  44.     CLOSE('localeprefs')
  45. END
  46.  
  47. SELECT
  48.     WHEN language = 'deutsch' THEN DO  /* german text */
  49.         MSG_NOMAIL        = "Keine E-Mails im Ordner !"
  50.         MSG_ASKCHECK      = "Welche möchten Sie prüfen ?"
  51.         MSG_ASKCHECK_GAD  = "Heu_te|_Woche|Alle tä_glichen|Alle wöch_entlichen|_Alle|Abbru_ch"
  52.         MSG_MAILNOTFOUND  = "E-Mails mit Aminet-Uploads nicht gefunden !"
  53.         MSG_LISTFILES     = "Dateien aus welchen E-Mails auflisten ?"
  54.         MSG_LISTFILES_GAD = "Au_sgewählte|_Andere"
  55.         MSG_FILES         = "Dateinummern eingeben (z.B. 1 2 5)"
  56.         MSG_FILES_GAD     = "_Ok|_Fertig|_Abbruch|_Zurück|_Next"
  57.         MSG_README        = "Möchten Sie für jede Datei auch auch die zugehörigen .readme-Dateien ? "
  58.         MSG_README_GAD    = "_Ja|_Nein"
  59.         MSG_ASKSEND       = "E-Mail wurde erstellt."NL"Möchten Sie:"
  60.         MSG_ASKSEND_GAD   = "E-Mail _senden|_Alle senden|E-Mail in die _Warteschlange"
  61.     END
  62.     WHEN language = 'français' THEN DO  /* french text */
  63.         MSG_NOMAIL        = "Pas de messages dans ce dossier !"
  64.         MSG_ASKCHECK      = "Souhaitez-vous rechercher les nouveautés dans les messages de ?"
  65.         MSG_ASKCHECK_GAD  = "_Aujourd'hui|La _semaine|Tous les _jours|Toute _les semaines|_Tous|_Annuler"
  66.         MSG_MAILNOTFOUND  = "Message des nouveautés sur Aminet pas trouvé !"
  67.         MSG_LISTFILES     = "Lister les nouveautés dans les messages"
  68.         MSG_LISTFILES_GAD = "_Sélectionnés|_Autres"
  69.         MSG_FILES         = "Entrez les numéros des fichiers (par ex. 1 2 5)"
  70.         MSG_FILES_GAD     = "_Ok|_Terminé|_Annuler|_Renevir|_Prochain"
  71.         MSG_README        = "Souhaitez-vous recevoir les fichiers .readme également ?"
  72.         MSG_README_GAD    = "_Oui|_Non"
  73.         MSG_ASKSEND       = "Le message est écrit."NL"Souhaitez-vous ?"
  74.         MSG_ASKSEND_GAD   = "Envoyer ce _message|Envoyer _tous les messages|Mettre ce message en _attente"
  75.     END
  76.     OTHERWISE DO /* english text */
  77.         MSG_NOMAIL        = "No email in folder!"
  78.         MSG_ASKCHECK      = "Do you wish to check"
  79.         MSG_ASKCHECK_GAD  = "_Today's|_Week's|All _dailys|All w_eeklys|_All|_Cancel"
  80.         MSG_MAILNOTFOUND  = "Aminet Uploads email not found!"
  81.         MSG_LISTFILES     = "List files in:"
  82.         MSG_LISTFILES_GAD = "_Selected|_Other"
  83.         MSG_FILES         = "Enter filenumbers (ie. 1 2 5)"
  84.         MSG_FILES_GAD     = "_Ok|_Finished|_Abort|_Back|_Next"
  85.         MSG_README        = "Do you want each file's .readme as well?"
  86.         MSG_README_GAD    = "_Yes|_No"
  87.         MSG_ASKSEND       = "Mail is done."NL"Do you want to:"
  88.         MSG_ASKSEND_GAD   = "_Send Mail|Send _All|_Queue Mail"
  89.     END
  90. END
  91.  
  92. INFO SCREEN
  93. pubscreen = result
  94. GETFOLDERINFO MAX
  95. entries=result
  96. IF entries=0 THEN
  97.     DO
  98.         test=RTEZREQUEST(MSG_NOMAIL,"_Ok",,"rt_pubscrname="pubscreen)
  99.         EXIT
  100.     END
  101.  
  102. lfi = 0
  103. t = 0
  104. checkn = 0
  105. filename. = ''
  106. GETMAILINFO SUBJECT
  107. sub = LEFT(RESULT,15)
  108. IF sub = today | sub = weekly THEN
  109.     DO
  110.         test=RTEZREQUEST(MSG_LISTFILES,MSG_LISTFILES_GAD,,"rt_pubscrname="pubscreen)
  111.         lfi = rtresult
  112.     END
  113. IF lfi THEN
  114.     DO
  115.         t = 1
  116.         GETMAILINFO FILE
  117.         filename.1 = RESULT
  118.     END
  119. ELSE
  120.     DO
  121.         test=RTEZREQUEST(MSG_ASKCHECK,MSG_ASKCHECK_GAD,,"rt_pubscrname="pubscreen)
  122.         checkn = rtresult
  123.         IF checkn = 0 THEN EXIT
  124.         IF checkn = 1 | checkn = 3 THEN check = today
  125.         IF checkn = 2 | checkn = 4 THEN check = weekly
  126.         DO n = entries-1 TO 0 BY -1
  127.             SETMAIL n
  128.             GETMAILINFO SUBJECT
  129.             sub = LEFT(RESULT,15)
  130.             IF checkn = 5 THEN
  131.                 DO
  132.                     IF sub = today | sub = weekly THEN
  133.                         DO
  134.                             t = t + 1
  135.                             GETMAILINFO FILE
  136.                             filename.t = RESULT
  137.                         END
  138.                     END
  139.             ELSE
  140.                 IF sub = check THEN
  141.                     DO
  142.                         t = t + 1
  143.                         GETMAILINFO FILE
  144.                         filename.t = RESULT
  145.                     END
  146.         END
  147.     END
  148.  
  149. IF t = 0 THEN
  150.     DO
  151.         test=RTEZREQUEST(MSG_MAILNOTFOUND,"_Ok",,"rt_pubscrname="pubscreen)
  152.         EXIT
  153.     END
  154.  
  155. IF checkn < 3 THEN t = 1
  156.  
  157. DO mail = 1 to t
  158.     line. = ''
  159.     ADDRESS COMMAND 'COPY 'filename.mail' TO T:FTPMail.rct'
  160.     OPEN('recent','T:FTPMail.rct','R')
  161.  
  162.     DO UNTIL LEFT(READLN('recent'),3) = '|--'
  163.     END
  164.  
  165.     i=0
  166.     DO WHILE ~EOF('recent')
  167.         i=i+1
  168.         line.i=READLN('recent')
  169.         IF LEFT(line.i,1) = '|' THEN BREAK
  170.         IF STRIP(line.i) = '' THEN i=i-1
  171.     END
  172.     CLOSE('recent')
  173.  
  174.     c = 0
  175.     w = i%FILES
  176.     IF i//FILES >0 THEN w = w + 1
  177.  
  178.     DO n = 1 to w
  179.         DO f = n*FILES-(FILES-1) to n*FILES
  180.             PARSE VAR line.f file.f dir.f size.f '+' desc.f
  181.             file.f = LEFT(file.f,18,' ')
  182.             dir.f = LEFT(dir.f,10,' ')
  183.             size.f = RIGHT(size.f,4,' ')
  184.             desc.f = LEFT(desc.f,37,)
  185.         END
  186.  
  187.         reqstr = ''
  188.         DO x = f-FILES to f-1
  189.             y=x
  190.             if y<10 then y=' '||y
  191.             reqstr =  reqstr || y'. 'file.x' 'dir.x' 'size.x' 'desc.x||NL
  192.         END
  193.         input = RTGETSTRING(,reqstr,MSG_FILES,MSG_FILES_GAD,"rt_pubscrname="pubscreen)
  194.         SELECT
  195.             WHEN rtresult = 2 THEN BREAK
  196.             WHEN rtresult = 3 THEN EXIT
  197.             WHEN rtresult = 4 THEN DO
  198.                 n = n - 2
  199.                 IF n < 0 then n = 0
  200.             END
  201.             OTHERWISE DO WHILE input ~= ''
  202.                 c = c+1
  203.                 PARSE VAR input filenum.c input
  204.                 j = filenum.c
  205.                 IF STRIP(file.j) = '' THEN c = c-1
  206.             END
  207.         END
  208.     END
  209.  
  210.     IF c > 0 THEN
  211.         DO
  212.             test=RTEZREQUEST(MSG_README,MSG_README_GAD,,"rt_pubscrname="pubscreen)
  213.             read = rtresult
  214.             OPEN('mailout','T:FTPMail.tmp','W')
  215.             WRITELN('mailout','open ftp.wustl.edu')
  216.             WRITELN('mailout','mime')
  217.             DO mc = 1 to c
  218.                 d = filenum.mc
  219.                 dir = STRIP(dir.d)||'/'
  220.                 file.d='pub/aminet/'||dir||file.d
  221.                 WRITELN('mailout','get 'file.d)
  222.                 IF read THEN
  223.                     DO
  224.                         lgt = LENGTH(COMPRESS(file.d))-3
  225.                         filer=LEFT(file.d,lgt)
  226.                         WRITELN('mailout','get 'filer'readme')
  227.                     END
  228.             END
  229.             WRITELN('mailout','quit')
  230.             CLOSE('mailout')
  231.             MAILWRITE
  232.             WRITEMAILTO '"ftpmail@ftp.luth.se"'
  233.             WRITESUBJECT '"Aminet Downloads"'
  234.             WRITELETTER 'T:FTPmail.tmp'
  235.             test=RTEZREQUEST(MSG_ASKSEND,MSG_ASKSEND_GAD,,"rt_pubscrname="pubscreen)
  236.             choice = rtresult
  237.             IF choice = 1 THEN WRITESEND
  238.             ELSE WRITEQUEUE
  239.             IF choice = 2 THEN MAILSENDALL
  240.         END
  241.  
  242. END
  243. ADDRESS COMMAND 'DELETE >NIL: T:FTPMail.*'
  244. EXIT
  245.  
  246.